
# 面向对象-多态

"""
1. 概念 ：一个对象有多种形态 ，以适应不同的需求变化 。
2. 说明 ：
    (1) . 必须有继承关系
    (2) . 子类的方法复写了父类的方法， 子类的参数必须是大于等于父类的参数 。

3. 开闭原则 ：
    (1) . 对于调用者来说进行关闭 ，关闭修改的需求 。
    (2) . 对实现着来说进行开放 ，可以修改它的需求 ，可以满足需求的变更 。
"""

class Test():

    # 实现搜索功能
    def search(self):
        print("需要搜索的具体内容")


class Bugs(Test):

    def search(self):
        return [{'bug_id': 1, 'bug_title': '学生列表页使用学生名称进行搜索 结果不正确', 'bug_project': 'tpshop', 'version': 1.0}]


class Cases(Test):

    def search(self):
        return [{'case_id': 1, 'case_title': '学生列表页使用学', 'bug_project': 'tpshop', 'version': 1.0}]


class Report(Test):

    def search(self):
        return [{'report_id': 1, 'report_title': '学生列表页使用学', 'bug_project': 'tpshop', 'version': 1.0}]


# 实现一个函数 ：调用者
def search_data(test):
    result = test.search()
    return result

# 查询Bug数据
print(search_data(Bugs()))

# 查询用例数据
print(search_data(Cases()))

# 查询测试报告数据、
print(search_data(Report()))